[toc]
计划任务系统 gocron
1.项目简介
使用Go语言开发的轻量级定时任务集中调度和管理系统,用于替代Linux-crontab 查看文档
原有的延时任务拆分为独立项目延迟队列
功能特性
-
Web界面管理定时任务
-
crontab时间表达式, 精确到秒
-
任务执行失败可重试
-
任务执行超时, 强制结束
-
任务依赖配置, A任务完成后再执行B任务
-
账户权限控制
-
任务类型
-
shell任务
在任务节点上执行shell命令, 支持任务同时在多个节点上运行
-
HTTP任务
访问指定的URL地址, 由调度器直接执行, 不依赖任务节点
-
-
查看任务执行结果日志
-
任务执行结果通知, 支持邮件、Slack、Webhook
gocron架构示意图
gocron分为调度器和任务节点
gocron 命令
- gocron
- -v 查看版本
- gocron web
- --host 默认0.0.0.0
- -p 端口, 指定端口, 默认5920
- -e 指定运行环境, dev|test|prod, dev模式下可查看更多日志信息, 默认prod
- -h 查看帮助
- gocron-node
- -allow-root *nix平台允许以root用户运行
- -s ip:port 监听地址
- -enable-tls 开启TLS
- -ca-file CA证书文件
- -cert-file 证书文件
- -key-file 私钥文件
- -h 查看帮助
- -v 查看版本
2.部署安装
从relese下载安装包
2.1 下载包
下载调度器二进制包
wget https://github.com/ouqiang/gocron/releases/download/v1.5.3/gocron-v1.5.3-linux-amd64.tar.gz
下载node节点二进制包
wget https://github.com/ouqiang/gocron/releases/download/v1.5.3/gocron-node-v1.5.3-linux-amd64.tar.gz
2.2 启动gocron
2.2.1 启动gocron调度器
gocron调度器监听 5920 端口
tar xf gocron-v1.5.3-linux-amd64.tar.gz && cd gocron-linux-amd64
./gocron web
2.2.2 启动gocron node
提示
gocron node监听 5921 端口
gocron node 默认不允许以 root 用户启动,如果想要以 root 用户启动,则需要加参数 -allow-root
,经个人测试,如果以非 root 用户启动,会有N堆坑 🦙
tar xf gocron-node-v1.5.3-linux-amd64.tar.gz && cd gocron-node-linux-amd64
./gocron-node -allow-root
2.3 创建数据库
gocron需要连接数据库
create database gocron;
grant all on gocron.* to gocron@'127.0.0.1' identified by 'gocron';
2.4 访问gocron
浏览器访问 IP:5920